package LeetCode热题HOT100;

import 力扣题库.TreeNode;

import java.util.ArrayList;
import java.util.List;

public class p114二叉树展开为链表 {
    public void flatten(TreeNode root) {
        while (root!=null) {
            if (root.left==null) {
                //当前根节点没有左子树，则root直接等于右子树的根节点
                root=root.right;
            }else {
                TreeNode pre=root.left;
                //找到当前左子树的最右结点
                while (pre.right!=null) {
                    pre=pre.right;
                }
                //让当前根节点的右子树插入左子树的最右结点
                pre.right=root.right;

                //让当前根节点的左子树成为当前根节点的右子树
                root.right=root.left;
                root.left=null;
                root=root.right;
            }
        }

    }
}
